package cn.bte;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.text.JTextComponent;
import java.awt.*;
import java.awt.event.*;

public class frameClass {
    // 将图形化界面涉及的所有组件用成员变量定义
    // 用来明确需要多少组件
    // 创建方法的时候再对组件初始化
    private JFrame f;
    private JTextField tf;
    private JButton but;

    public frameClass() {
        init();
    }

    /**
     * 组件初始化
     */
    private void init() {
        f = new JFrame("谁在用？");
        f.setBounds(400, 200, 250, 80);
        f.setLayout(new FlowLayout());
        f.setAlwaysOnTop(true);

        tf = new JTextField(15);
        tf.setBorder(new EmptyBorder(5,0,0,0));
        f.setLayout(new BorderLayout(10,5));
//        but = new JButton("一个按钮");
        f.add(tf);
//        f.add(but);
//        JTextArea tc=new JTextArea();

        myEvent();

        f.setVisible(true);
    }

    private void myEvent() {
        // 窗体监听事件
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

//        // 给按钮添加一个鼠标监听事件
//        but.addMouseListener(new MouseAdapter() {
//            private int count = 1;
//            public void mouseEntered(MouseEvent e) {
//                tf.setText("" + count);
//                count ++;
//            }
//            public void mouseClicked(MouseEvent e) {
//                // 可以通过MouseEvent的各种方法来获取鼠标事件的信息
//                if (e.getClickCount() == 2) {
//                    System.out.println("double click");
//                }
//                // System.out.println("1");
//            }
//        });

//        // 给按钮添加活动事件,活动事件比鼠标监听事件先触发
//        but.addActionListener(new ActionListener() {
//            public void actionPerformed(ActionEvent e) {
//                System.out.println("2");
//            }
//        });

        // 给文本框添加键盘监听事件
        tf.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                // 获取键代码的名称
                System.out.println(KeyEvent.getKeyText(e.getKeyCode()));
                if (!(e.getKeyCode() >= KeyEvent.VK_0 && e.getKeyCode() <= KeyEvent.VK_9)) {
                    // 消耗掉该数据，不进行默认操作
                    e.consume();
                }
                // 用来判断CTRL + 回车
                if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_ENTER) {
                    System.out.println("CTRL + enter");
                }
            }
        });

    }
    public void this_windowLostFocus(WindowEvent e) {
        f.requestFocus();
//        f.setLocation(0,0);
    }
    public void this_windowIconified(WindowEvent e) {
        f.setExtendedState(JFrame.MAXIMIZED_BOTH);
    }
}
